package com.example.videopublish.model

import android.net.Uri
import java.io.Serializable

/**
 * 视频数据模型类
 * 
 * @property uri 视频的Uri地址
 * @property title 视频标题
 * @property description 视频描述
 * @property tags 视频标签列表
 * @property durationMs 视频时长（毫秒）
 * @property sizeBytes 视频大小（字节）
 * @property thumbnailPath 视频缩略图路径（可选）
 */
data class VideoModel(
    val uri: Uri,
    var title: String = "",
    var description: String = "",
    var tags: List<String> = emptyList(),
    var durationMs: Long = 0,
    var sizeBytes: Long = 0,
    var thumbnailPath: String? = null
) : Serializable {
    
    /**
     * 将标签列表转换为字符串（逗号分隔）
     */
    fun getTagsAsString(): String {
        return tags.joinToString(", ")
    }
    
    /**
     * 解析逗号分隔的标签字符串为标签列表
     */
    fun setTagsFromString(tagsString: String) {
        tags = tagsString.split(",").map { it.trim() }.filter { it.isNotEmpty() }
    }
    
    /**
     * 获取格式化的视频时长（分:秒）
     */
    fun getFormattedDuration(): String {
        val totalSeconds = durationMs / 1000
        val minutes = totalSeconds / 60
        val seconds = totalSeconds % 60
        return String.format("%d:%02d", minutes, seconds)
    }
    
    /**
     * 获取格式化的视频大小（MB）
     */
    fun getFormattedSize(): String {
        val sizeInMb = sizeBytes / (1024.0 * 1024.0)
        return String.format("%.2f MB", sizeInMb)
    }
} 